var menuLength=getLength("config_page_size");
$(document).ready(function() {
	
	$("#dictTable").hide();
	getDictTree();//加载字典树
	$('#editDictForm').bootstrapValidator(validator);
})
var permTree;
var curNode;//当前节点
//字典树配置信息
var dictTreeSetting = {
	check : {
		enable : false
	},
	view : {
		selectedMulti : true
	},
	data : {
		simpleData : {
			enable : true,
			idKey : "dictId",
			pIdKey : "dictParentId",
			rootPId : 0
		},
		key : {
			name : "dictLabel"
		}
	},
	callback : {
		beforeClick : function(treeId, treeNode) {

		},
		onClick : getDictChildInfo

	}
};

/**
 * 获取字典树，并展示在JSP页面中
 * @returns
 */
function getDictTree() {
	$.post("getDictTree", function(data) {
		permTree = $.fn.zTree.init($("#dictTree"), dictTreeSetting, data);
		var treeObj = $.fn.zTree.getZTreeObj("dictTree");
		var rootNode = permTree.getNodes()[0];
		permTree.expandNode(rootNode);//展开根节点
		//获取根节点  
		var node = treeObj.getNodes[0];
		curNode = treeObj.getNodeByParam("id",node);
		treeObj.selectNode(curNode,false,false);
		var nodes = treeObj.getNodes();
		if (nodes.length>0)
		{  
			var node = nodes[0];
			getDictChildInfo(null,null,node);
		}
	});
	
}

/**
 * 
 * @param 获取字典数中某一个节点的所有子节点的信息，并展示在JSP页面右侧的表格中
 * @returns
 */
function getDictChildInfo(event, treeId, treeNode) {
	curNode = treeNode;
	getDictTable(treeNode.dictId);
}

var btnModel = '    \
	{{#each func}}\
    <button type="button" class="user-button user-{{this.type}} btn-sm" onclick="{{this.fn}}">{{this.name}}</button>\
    {{/each}}';
var template = Handlebars.compile(btnModel);

/**
 * 查询符合条件的字典记录，展示在JSP右侧的表格中
 * @param 
 * @returns
 */
function getDictTable(dictParentId) {

	$("#dictTable").show();
	$("#dictTable").DataTable().destroy();      //字典表解绑datatables	
	$("#dictTable").DataTable({//字典表绑定datatables
		"ordering" : false,// 排序
		"serverSide" : true,// 开启服务器模式
		ajax : {
			type : "post",
			url : 'getDictsInfo.action',//请求路径
			dataType : "json",
			cache : false,
			data : function(d){
		    	d.dictParentId = dictParentId;
		    	d.dictName = $('#dictName').val();
		    	d.dictCode = "";//$('#dictCode').val();
		    	return d;
		    }
		},
		columns : [// 对应列
			{visible:false},
		{
			"data" : null,render : function(a, b, c, d) {
				var context = {
						func : [
						    {"name" : "修改","fn" : "goEditDict(\'" + c.DICTID + "\')"},
							{"name" : "删除","fn" : "delDict(\'" + c.DICTID + "\')","type" : "btn-n"}
							]};
					var html = template(context);
					return html;
				}
		}, {
			"data" : "DICTID"
		}, {
			"data" : "DICTLABEL"
		}, {
			"data" : "DICTVALUE"
		}, {
			"data" : "DICTTYPE"
		}, {
			"data" : "DICTSORT"
		} ],
		"columnDefs" : [ {// 所有列默认值
			"targets" : "_all",
			"defaultContent" : ''
		}],
		lengthMenu: [
		 	    	menuLength,
		 	    	menuLength
		 	    ],
		"dom": 'rt<"pull-left mt5"l><"pull-left mt5"i><"pull-right mt5"p><"clear">' //生成样式
	});
	
}

/**
 * 删除ID值为dictId的字典信息
 */
function delDict(dictId){
	if(0==dictId){
		alertModel('根节点禁止删除');
		return;
	}
	confirmModel('确定删除该节点及其子节点么？',delDict1,dictId)
	
}
function delDict1(dictId){
	$.post("delDict.action",{"dictId":dictId}, function(data) {
		alertModel("删除成功");
		//curNode=data;
		curNode = permTree.getNodeByParam("dictId",dictId);
		permTree.removeNode(curNode);
		var dictParentId=$("#dictParentId").val();
		getDictTable(dictParentId);
	});
	
}

/**
 * 修改ID值为dictId的字典信息
 */
function goEditDict (dictId){
	$.post("goEditDict",{"dictId":dictId}, function(data) {
		$(".add").hide();
	//	$("#editDictForm")[0].reset();
		$("#dictId").attr({ readonly: 'true' });//添加readonly属性 
		$("#dictId").val(data.dictId);
		$("#dictParentId").val(data.dictParentId);
		$("#dictValue").val(data.dictValue);
		$("#dictLabel").val(data.dictLabel);
		$("#dictType").val(data.dictType);
		$("#dictSort").val(data.dictSort);
		$("#dictDesc").val(data.dictDesc);
		$("#createBy").val(data.createBy);
		$("#createDate").val(date2String(data.createDate));
		$("#editDictModal").show();
		$("#updateBtn").show();
		$("#permModalLabel1").hide();
		$("#permModalLabel").show();
		$("#dictMana").hide();
		
	});
}

/**
 * 格式化时间 将date类型格式化为形如“2017-03-14 17:58:09”的String串
 * @param time 需要格式化的date类型数据
 * @returns 格式化后的时间串
 */
function date2String(time){
    var datetime = new Date();
    datetime.setTime(time);
    var year = datetime.getFullYear();
    var month = datetime.getMonth() + 1 < 10 ? "0" + (datetime.getMonth() + 1) : datetime.getMonth() + 1;
    var date = datetime.getDate() < 10 ? "0" + datetime.getDate() : datetime.getDate();
    var hour = datetime.getHours()< 10 ? "0" + datetime.getHours() : datetime.getHours();
    var minute = datetime.getMinutes()< 10 ? "0" + datetime.getMinutes() : datetime.getMinutes();
    var second = datetime.getSeconds()< 10 ? "0" + datetime.getSeconds() : datetime.getSeconds();
    return year + "-" + month + "-" + date+" "+hour+":"+minute+":"+second;
}

//退出修改或新增模态框
function goBack(){
	$("#editDictModal").hide();
	$("#dictMana").show();
	resetForm();
}

/**
 * 提交修改信息
 * @returns
 */
function editDict(){
	  // alert(66666);
    	$.post("editDict",$("#editDictForm").serialize(), function(data) {
    		$("#editDictModal").hide();
    		curNode = permTree.getNodeByParam("dictId",data.dictId);
    	//	curNode.dictLabel=data.dictLabel;
    		//alert(curNode);
    		curNode.dictLabel=data.dictLabel;
    		permTree.updateNode(curNode);
    		isClick1=false;
        	var dictParentId=$("#dictParentId").val();
        	getDictTable(dictParentId);
        	$("#dictMana").show();
        	resetForm();
        	alertModel("修改成功");
    	});
}

/**
 * 打开新增摸态框
 * @returns
 */
function goNewDict(){
	$("#editDictForm")[0].reset();
	$("#dictParentId").val(curNode.dictId);
	$(".add").show();
	$(".update").hide();
	$("#editDictModal").show();
	$("#permModalLabel").hide();
	$("#permModalLabel1").show();
	$("#dictMana").hide();
}

/**
 * 新增字典信息
 * @returns
 */
function addDict(){
    	$.post("editDict",$("#editDictForm").serialize(), function(data) {
    		$("#editDictModal").hide();
    		var dict = {'dictId':data.dictId,'dictLabel':data.dictLabel,'dictParentId':data.dictParentId};
    		permTree.addNodes(curNode, dict);
    	});
    	isClick=false;
    	var dictParentId=$("#dictParentId").val();
    	getDictTable(dictParentId);
    	$("#dictMana").show();
    	resetForm();
    	
}
//重置表格
function resetForm(){
	if($('#editDictForm').data('bootstrapValidator')){
		$('#editDictForm').data('bootstrapValidator').resetForm(false);
	}
}

/**
 * 重置查询条件
 * @returns
 */
function searchDictReset(){
	$("#searchDictForm")[0].reset();
}

/**
 * 查询符合条件的字典信息，并展示在表格中
 * @returns
 */
function searchDict(){
	getDictTable(null);
}
var isClick=false;
function ifclick(){
	isClick=true;
}
var isClick1=false;
function ifclick1(){
	isClick1=true;
}
var validator = {
		message: 'This value is not valid',
        feedbackIcons: {
            valid: 'glyphicon glyphicon-ok',
            invalid: 'glyphicon glyphicon-remove',
            validating: 'glyphicon glyphicon-refresh'
        },
        submitHandler: function(validator, form, submitButton) {
        	if(isClick){
        		addDict();
	    	}
        	if(isClick1){
	    		editDict();
	    	}
        },
	    fields: {
	    	dictId: {
	            validators: {
	                notEmpty: {
	                    message: '请输入字典编码'
	                }
	            }
	        },
	        dictParentId: {
	            validators: {
	                notEmpty: {
	                    message: '请输入父字典编码'
	                }
	            }
	        },
	        dictLabel: {
	            validators: {
	            	notEmpty: {
	                    message: '请输入字典名称'
	                }
	            }
	               
	         },
	         dictValue: {
		            validators: {
		            	notEmpty: {
		                    message: '请输入字典值'
		                }
		            }
		               
		       },
		       dictType: {
			            validators: {
			            	notEmpty: {
			                    message: '请输入字典类型'
			                }
			            }
			               
			     },
			    dictSort: {
		            validators: {
		            	notEmpty: {
		            		message: '请输入字典顺序'
		            	},
		            	numeric: {
							message: "只能输入纯数字"

						}
		            }
		        },
			    dictDesc: {
		            validators: {
		            	notEmpty: {
		            		message: '请输入字典描述'
		            	}
		            }
			    }
	    }
	};



function loadDeferScript(){

	/**修改因为高度问题导致分页下移的问题*/

	if(myBrowser() =="IE9"){
		if($(".DTFC_LeftHeadWrapper").length>0&&$(".DTFC_LeftBodyWrapper").length>0){
			var needChangeHeight = $("#searchTable_wrapper .DTFC_ScrollWrapper").height();
			$("#searchTable_wrapper .DTFC_ScrollWrapper").height((needChangeHeight-65)+"px");
		}
		
	}
}

$(document).on('click','#dictTable_paginate li.paginate_button a',function(){

	setTimeout("loadDeferScript()", 1000);
});
